package com.my.kindlesend.utils;

import com.my.kindlesend.entity.UserInfo;

/**
 * 用户信息ThreadLocal工具类
 * 用于在当前线程中存储和获取用户信息
 */
public class UserThreadLocal {

    // 存储用户信息的ThreadLocal对象
    private static final ThreadLocal<UserInfo> USER_THREAD_LOCAL = new ThreadLocal<>();

    /**
     * 设置用户信息到ThreadLocal
     * @param userInfo 用户信息对象
     */
    public static void set(UserInfo userInfo) {
        USER_THREAD_LOCAL.set(userInfo);
    }

    /**
     * 从ThreadLocal中获取用户信息
     * @return 用户信息对象
     */
    public static UserInfo get() {
        return USER_THREAD_LOCAL.get();
    }

    /**
     * 清理ThreadLocal中的用户信息，防止内存泄漏
     */
    public static void remove() {
        USER_THREAD_LOCAL.remove();
    }
}